package com.tao.YanMoDesignPattern.template.case1_extend;



/**
 * @Author Mi_Tao
 * @Date 2023/7/22
 * @Description
 * @Version 1.0
 **/
public class NormalLogin2 extends LoginTemplate{
    @Override
    public LoginModel findLoginUser(String loginId) {
        // 省略具体操作，返回一个默认数据对象
        NormalLoginModel lm = new NormalLoginModel();
        lm.setLoginId(loginId);
        lm.setPwd("testpwd");
        lm.setQuestion("testQuestion");
        lm.setAnswer("testAnswer");
        return lm;
    }

    public boolean match(LoginModel lm,LoginModel dbLm){
        // 这个方法需要覆盖，因为进行登陆控制的时候需要检测4个值是否正确，而不仅仅是缺省的2个

        // 调用父类实现好的，检测编号和密码是否正确
        boolean f1 = super.match(lm, dbLm);
        if (f1){
            //如果编号和密码正确，检查问题和答案是否正确
            // 先把数据转换成自己需要的数据
            NormalLoginModel nlm = (NormalLoginModel)lm;
            NormalLoginModel dbNlm = (NormalLoginModel)dbLm;
            // 检查问题和答案是否正确
            if (dbNlm.getQuestion().equals(nlm.getQuestion())&& dbNlm.getAnswer().equals(nlm.getAnswer())){
                return true;
            }
        }
        return false;
    }
}
